package service;

import annotation.Transaction;
import dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import pojo.User;
import tx.TransactionManager;

@Service("target")
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;
//    @Autowired
//    private TransactionManager tx;
    /*
    * @Autowired
    * private TransactionManager tx;
    *
    * */



    @Override
//    @Transaction
    public void addUser(User user) {
//        tx.open1();
        //处理数据的业务逻辑
        userDao.add(user);
//        tx.commit();

        //缺点：事物模块与service层产生了强耦合
        //通过静态代理方式完成事物控制

        /**
         * 1、根据需求，编写事物控制的模块  tx.TransactionManager
         * 2、根据需求，使用静态代理模式，编写代理类 proxy.Proxy
         * 3、根据流程图，完成各层之间的关系。
         *
         */

    }

    @Override
    public void update(User user) {

        userDao.update(user);
    }

}
